Within communication networking, Transmission Control Protocol (“TCP”) is a standard that defines the manner in which a network conversation is established and maintained to allow application programs to exchange data. TCP works in conjunction with the Internet Protocol (“IP”), which defines the manner in which computer devices transmit packets of data to each other. Accordingly, the TCP and IP protocols define the basic rules defining the Internet. More specifically, TCP provides reliable, structured, and error-checked delivery of a stream of data between applications running on hosts communicating over an IP network. Important Internet applications, such as web browsers, email, remote administration and file transfer rely on TCP communications.
TCP provides a communication service at an intermediate level between an application program and the Internet Protocol by providing host-to-host connectivity at the transport layer of the Internet mode. TCP may be described as a connection-oriented protocol, such that a connection is established and maintained until the application programs at each end have finished exchanging messages. TCP determines the manner in which application data is broken down into packets, such that networks can transmit packets to and accepts packets from the network layer. TCP also manages flow control and handles re-transmission of dropped packets, as well as acknowledgement of all packets, to reduce data transmission errors.
As noted above, TCP accepts data from a data stream, divides it into smaller portions and adds a TCP header, thereby creating a TCP segment. The TCP segment is then encapsulated into an IP datagram and exchanged with peers. The maximum segment size (“MSS”) is the largest amount of data, as specified in bytes, that TCP is to receive in a single segment. The TCP MSS selection is typically performed during a handshake operation, wherein the MSS is announced by each side using the MSS option when the TCP connection is established. The TCP MSS may be derived from the maximum transmission unit (“MTU”) size of the data link layer of the networks to which the sender and receiver are directly attached.
In the current implementations of TCP, the TCP MSS values are set without regard to power and bandwidth constraints. This can yield potentially devastating results when applied to link-budget limited devices and/or power limited devices.